package com.jxtc.enterprise.common.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;

import java.time.LocalDateTime;

@Data
@TableName("shopping_cart")
public class ShoppingCart {

    @TableId(type = IdType.ASSIGN_ID)
    private String id;

    /**
     * todo 是否还需要，对应与user 表中的id 列
     */
    @TableField("user_id")
    private String userId;

    @TableField("phone")
    private String phone;

    @TableField("order_id")
    private String orderId;

    /**
     * 用户所使用的菜单id
     */
    @TableField("menu_id")
    private String menuId;

    @TableField("store_id")
    private String storeId;

    @TableField("store_name")
    private String storeName;

    @TableField("food_id")
    private String foodId;

    @TableField("food_name")
    private String foodName;

    @TableField("food_image")
    private String foodImage;

    /**
     * 当菜品为自选快餐时，最终打印在标签上的菜品名；最终打印在标签上的菜品名实际上是各种规格拼接的，比如 小炒肉+辣子鸡丁+油麦菜
     */
    @TableField("food_print_name")
    private String foodPrintName;

    @TableField("count")
    private Integer count;

    @TableField("specification")
    private String specification;

    /**
     * 菜品的价格，给消费者的价格，展示在页面上的价格; 若用户选购了多份某项同样的菜品，则此价格为 多个菜品的价格总和 = 菜品单价 * count（份数）
     */
    @TableField("sale_price")
    private Integer salePrice;

    /**
     * 菜品的展示价格，单位分
     */
    private Integer showPrice;

    /**
     * 某一天添加到购物车中的菜品，该字段的值一样，比如 20240106
     */
    @TableField("date_flag")
    private Integer dateFlag;

    /**
     * 表示挑选的店铺或菜品时在那个时段供应，比如lunch午餐，dinner晚餐，该值与 MealTypeEnum 中的 mealTypeEn 对应
     */
    private String mealType;

    @TableField("del_flag")
    private Boolean delFlag;

    /**
     * 创建时间，在创建时默认传值，不需要手动操作
     */
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 更新时间，在更新时默认传值，不需要手动操作
     */
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    public float getSalePriceInYuan() {
        return salePrice * 1.0f / 100;
    }

}
